1. Field of the Invention
The present invention relates to error correction coding (ECC) arrangements used in connection with digital recording devices, and more particularly to an improved method and apparatus for processing interleaved codewords.
2. Background Art
Generally, error correction codes (ECC) are commonly employed when communicating data between different devices. As is well understood, these codes provide a level of data redundancy that allows corrupted data to be identified and corrected at the time of communication. Of particular interest to the present invention is the use of error correction codes when recording digital data. Error correction codes used with modern digital recording devices typically employ a technique for interleaving codeword elements to form multi-dimensional matrices from many error correction codewords. Interleaving techniques allow the codeword elements to be physically separated and distributed over multiple tracks on the recording medium.
An example of such a multi-dimensional matrix is illustrated in FIG. 1. As shown, a matrix 10 is formed from P number of pages, each having M number of rows and N number of columns. The contents of each row are recorded on the same track of a recording device. A predetermined number of partitions 12 are used to “hold” a correspondingly sized portion of the user data. In this example, three partitions A, B, and C are provided. User data is typically filled in one dimension of the matrix. The associated ECC codewords are appended to the end of the data in the same dimension.
The ECC interleave is typically accomplished by splitting each ECC word into segments having a predetermined number of bytes, and recording each ECC segment on a different track on the recording medium. Thus, each ECC word is recorded across multiple tracks of the recording device. When all segments of the ECC word are recorded, the next word is segmented and recorded in a similar manner. As a result, each segment of a codeword can be represented (row, column, page) as follows: A(1, 1, 1), A(2, 1, 1), A(3, 1, 1), . . . , A(M/no. of partions, 1, 1), B(1, 1, 1), B(2, 1, 1), B(3, 1, 1), . . . , B(M/no. of partions, 1, 1), C(1, 1, 1), C(2, 1, 1), C(3, 1, 1), . . . , C(M/no. of partions, 1, 1).
The drawback of such an interleaving arrangement is that an entire matrix must be recorded to achieve the full interleave effect. To fully record one matrix, multiple passes, i.e., 3*M passes in the example of FIG. 1, of N words must be made. As a result, if the size of a user's data does not equal an integer multiple of the user data portion of the matrix, pad bytes must be provided at the end of the last partition of data in order to fill the partition and complete the matrix.
The use of such additional pad bytes, as well as the requirement that each recording pass must be made in order to complete the matrix and ECC interleave, reduces the overall efficiency of such interleaving arrangements. Therefore, a need exists for an improved ECC interleaving arrangement that does not require recording of a full matrix when a user's data does not fill the entire user data portion of the matrix.